查看原文
其他

如何完成KEGG pathway分析并绘制气泡图?

莫北 SCIPainter 2023-12-20
前面,在《如何完成GO富集分析并绘制柱状图?》一文介绍了如何复现文章[1]中的GO富集分析结果。做完了GO富集分析,接下来就是KEGG富集分析了!为了完全复现文章中的KEGG富集分析结果,这里和原文一样(下图A),使用Metascape进行在线分析。


当然,如果觉得下面的内容比较难的话,我这里推荐大家直接使用OmicShare 的KEGG富集分析工具,只需上传目的基因列表即可轻松完成KEGG富集分析和图表绘制,更多详细的教程可参考《GO、KEGG富集分析如何显示上下调基因?》一文。

闲言少叙,下面就仍以《如何完成GO富集分析并绘制柱状图?》一文中所使用的84个“oxidative stress”功能相关的差异基因进行KEGG富集分析。

首先,进入Metascape主页,将84个基因直接复制粘贴到gene list输入框中(Step1),然后点击Submit按钮上传基因列表。


工具链接:
www.metascape.org

Metascape支持的Gene ID类型主要有Symbol、RefSeq、Ensembl、UniPro和UCSC 共5种类型,比如我这里的就是基因Symbol号。


接着,在Step2中选择所对应的物种,这里选择人(H.sapiens),然后点击Custom Analysis按钮进行自定义分析。


在弹出的页面中,直接选择第4个选项(Enrichment)页面,仅勾选KEGG Pathway,取消勾选其他的数据来源,如下,并勾选跳过蛋白互作分析。


然后,点击Enrichment Analysis蓝色按钮进行富集分析,需要一点点时间。


完成分析后,可快速预览富集分析结果。然后,点击Analysis Report Page按钮,进入分析报告页面。


在分析报告页面中,点击Gene List Report Excel Sheets按钮,下载分析结果表格。


下载的分析结果表格如下,用于作图的数据主要在Sheet2表格中。


完成KEGG富集分析之后,接下来我们使用ggplot2包对分析结果进行可视化!

1. 读入数据



#载入相关的R包;
library(readxl)
library(ggplot2)
library(tidyr)
library(dplyr)
#读入Excel数据;
dt <- read_excel("metascape_result.t0bcfo25h.xlsx",sheet = 2)
#预览数据;
head(dt)



#提取用于作图的列;
df <- dt[,c(3,4,5,7)]
#对InTerm_InList列进行拆分;
df <- separate(df, InTerm_InList, sep = "/", into = c("Count", "InTerm"))
#转换数据类型;
df$Count <- as.numeric(df$Count)
#根据Pvalue选择Top10的pathway进行绘制;
fig_data <- df %>% top_n(-10,LogP) %>% arrange(Count)
fig_data



#转成因子,防止重新排序;
fig_data$Description <- factor(fig_data$Description,
levels=fig_data$Description,ordered=TRUE)
#预览数据;
fig_data



2. 绘制柱状图



#建立数据与图形(点)的映射关系,即确定点的(x,y)坐标,绘制散点图;
p1<-ggplot(fig_data, aes(Count,Description))+
geom_point(aes(size=Count,color=LogP))
#隐藏坐标轴的标题;
p2<-p1+labs(y="")
p2



#自定义颜色渐变;
p3<-p2+scale_colour_gradient(low="red",high="yellow")
p3



#设置x轴范围,避免点的溢出绘图区;
p4<-p3+scale_x_continuous(limits = c(5.5, 12.5),
breaks = c(6,8, 10, 12),
label = c("6","8", "10", "12"))
p4



3. 自定义主题



#应用自带主题;
p4+theme_light()



#自定义图表主题,对图表做精细调整;
top.mar=0.2
right.mar=0.2
bottom.mar=0.2
left.mar=0.2
#隐藏坐标轴,并对字体样式、颜色、刻度长度等进行限定;
mytheme<-theme_light()+
theme(axis.text=element_text(family = "sans",colour ="gray20",size = 10),
panel.grid = element_blank(),
axis.ticks = element_line(linewidth = 0.6,colour = "gray20"),
axis.ticks.length = unit(1.2,units = "mm"),
plot.margin=unit(x=c(top.mar,right.mar,bottom.mar,left.mar),
units="inches"))
p4+mytheme



好啦,本次的分享就到这里啦!

参考文献
[1]Shi W, Zhang X, Xu C, et al. Identification of Hub Genes and Pathways Associated with Oxidative Stress of Cartilage in Osteonecrosis of Femoral Head Using Bioinformatics Analysis[J]. Cartilage, 2022, 13(1): 19476035221074000.

# SCIPainter

基迪奥旗下绘图公众号

分享科研绘图技能与工具

欢迎关注与转发~


你的好友拍了拍你

并请你帮她点一下“分享”~


继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存